Video frame bookmarking user interface component

ABSTRACT

A method, system, computer program product, and computer readable storage medium provide the ability to bookmark a frame of media content. A media content user interface component that controls playback of the media content in a media player is activated. The component includes a circular progress bar. A frame within the media content is identified and bookmarked. A bookmark is displayed on the circular progress bar and reflects the location of the bookmarked frame. The bookmark is selected to begin play from the bookmarked frame.

BACKGROUND OF THE INVENTION

1. Technical Field

Embodiments of the present invention relate generally to controllingmedia content playback, and in particular, to a method, system,apparatus, article of manufacture, and computer program product for auser interface (UI) component used to control and navigate media contentplayback, bookmark a frame in media content, and prevent a bypass ofadvertisements during the playback of media content.

2. Description of the Related Art

Touchscreen devices are often used to view and/or control the viewing ofmedia content. For example, a tablet computer (e.g., an iPad™) orsmartphone may be used to watch a video, play a slide show, listen toaudio, etc. Similarly, a tablet computer, smartphone, or othertouchscreen device may serve as a remote control to control the viewingof media content that is displayed on another device (e.g., on atelevision, a display device of a computer, a camera display, a monitor,etc.). Unfortunately, prior art systems fail to provide anunderstandable, intuitive, easy-to-use tool/widget/graphical UI thatenables such control. To better understand the problems of the priorart, a description of prior art media content controls may be useful.

FIG. 1 illustrates a prior art video control playback UI (e.g., on aniPad™). Once the user has initiated playback of video content, the UI100 is displayed. The actual video content is displayed in videoplayback area 102 with the video playback controls displayed in areas104 and 106. The video playback controls may be shown or hidden bytapping on video playback area 102. The user may scale the video to fitthe screen by double-tapping the video or selecting icon 108. Theplayhead 110 identifies the current playback location of the videoclip/content. Playhead 110 can be dragged along linear scrubber bar 112to skip forward or back thereby identifying a particular frame/timewithin a video clip. In FIG. 1, the playhead 110 is located at 10:39 ofthe clip and there is 1:29:18 remaining left of the video clip/content.

To start over from the beginning of the video clip/content, the playhead110 may be dragged along the scrubber bar 112 all the way to the left orthe user may select icon 114 (if there are no chapters in the video). Toskip to the next or previous chapter, the user may select/tap icons114/116 respectively. To rewind or fast-forward, the user may touch andhold icons 114/116, or may drag playhead 110 left or right. The user canmove their finger toward the bottom of screen 100 as the user drags forfiner control. The user can play/pause the playback of video content bytouching icon 118. Scrubber bar 120 may be used to control the volumeusing volume control head 122.

As illustrated in FIG. 1, the playback controls 108-122 are linear andrequire the user to lift his/her hand and drag one or more fingersacross a screen 100 in a linear manner to identify a playback locationand/or adjust the volume. Further, the playback scrubber bar 112 andvolume control scrubber bar 120 are not integrated into a singleinterface component and must therefore be separately manipulated usinghand/finger gestures in different areas of the screen 100.

In view of the above, what is needed is a touchscreen UI component formedia content playback controls that is intuitive, easy-to-use, andconforms to the natural gestures of a user's hand digits/phalanges.

SUMMARY OF EMBODIMENTS OF THE INVENTION

Embodiments of the invention overcome the problems of the prior art byutilizing a circular user interface (UI) component for media contentplayback controls. The UI component provides a circular layout with UIelements for playing, pausing, fast forwarding, rewinding, displayingthumbnail snapshots of scenes (while rewinding and fast forwarding),volume control, closed captioning, and toggling full screen videoplayback. The UI component also provides a UI element used foridentifying and bookmarking particular frames within the media contentfor later retrieval and use. Further, the UI component provides afeature that prevents a user from bypassing the viewing of advertisementinsertions (during video playback) by automatically snapping the userback to the advertisement (e.g., the beginning of the advertisementand/or where the user left off viewing the advertisement) when anattempt is made to fast forward beyond the advertisement.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 illustrates a prior art video control playback UI (e.g., on aniPad™);

FIG. 2 is a diagram illustrating an overview of a distribution systemthat can be used to provide video data, software updates, and other datato subscribers in accordance with one or more embodiments of theinvention;

FIG. 3 is a block diagram showing a typical uplink configuration for asingle satellite transponder, showing how video program material isuplinked to the satellite by the control center and the uplink center inaccordance with one or more embodiments of the invention;

FIG. 4 is a block diagram of one embodiment of the program guideservices/subsystem in accordance with one or more embodiments of theinvention;

FIG. 5A is a diagram of a representative data stream in accordance withone or more embodiments of the invention;

FIG. 5B is a diagram showing one embodiment of a data packet for onetransport protocol that can be used with embodiments of the presentinvention;

FIG. 5C is a diagram showing another embodiment of a data packet for theMPEG-2 protocol in accordance with one or more embodiments of theinvention;

FIG. 6 is a block diagram of a set top box (STB) in accordance with oneor more embodiments of the invention;

FIG. 7 is an exemplary hardware and software environment used toimplement one or more embodiments of the invention;

FIG. 8 schematically illustrates a typical distributed computer systemusing a network to connect client computers to server computers inaccordance with one or more embodiments of the invention;

FIG. 9 illustrates an enlarged view of the circular UI component inaccordance with one or more embodiments of the invention;

FIG. 10 illustrates an exemplary view of the UI component that has beenactivated when playing back media content (e.g., the movie “Her”) inaccordance with one or more embodiments of the invention;

FIG. 11 illustrates an exemplary view of the UI component where the userhas scrubbed to a new location using the UI component in accordance withone or more embodiments of the invention;

FIG. 12 illustrates the UI component where the volume control has beenactivated in accordance with one or more embodiments of the invention;

FIG. 13 illustrates an exemplary view of the UI component in which thevolume control has been activated in accordance with one or moreembodiments of the invention;

FIG. 14 illustrates an exemplary view of the UI component where playbackhas been paused and a bookmark has been set at the pause location inaccordance with one or more embodiments of the invention;

FIG. 15 illustrates an exemplary view of the UI component with abookmark indicator displayed in accordance with one or more embodimentsof the invention;

FIG. 16 illustrates a view of the UI component of FIG. 15 being utilizedin a video player in accordance with one or more embodiments of theinvention;

FIGS. 17A-17D illustrate the various states of a UI component whereadvertising bypass is prevented in accordance with one or moreembodiments of the invention;

FIG. 18 illustrates the logical flow for controlling media content playin accordance with one or more embodiments of the invention;

FIG. 19 illustrates the logical flow for bookmarking a frame of mediacontent in accordance with one or more embodiments of the invention; and

FIG. 20 illustrates the logical flow for preventing the bypass ofadvertisement viewing in accordance with one or more embodiments of theinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

Overview

Embodiments of the invention provided a UI component for media contentplayer controls. Such a UI component may be displayed/provided via atouchscreen control device, tactile device, or other device that iscapable of displaying the UI. In this regard, embodiments of theinvention may be displayed on a remote control, a smartphone, a tabletcomputer, a television monitor, a computer monitor, etc. To provide abetter understanding of potential implementations/environments, setforth below are descriptions of a satellite television distributionsystem and its components, as well as computer hardware/software.

Satellite Television Distribution System and Components

Distribution System

FIG. 2 is a diagram illustrating an overview of a distribution system200 that can be used to provide video data, software updates, and otherdata to subscribers. The distribution system 200 comprises a controlcenter 202 in communication with an uplink center 204 (togetherhereafter alternatively referred to as a headend) via a ground or otherlink 214 and with a subscriber receiver station 210 via the Internet220, a public switched telephone network (PSTN) or other link. Thecontrol center 202, or headend provides program material (e.g. videoprograms, audio programs, software updates, and other data) to theuplink center 204 and coordinates with the subscriber receiver stations210 to offer, for example, pay-per-view (PPV) program services,including billing and associated decryption of video programs.

The uplink center receives program material and program controlinformation from the control center 202, and using an uplink antenna 206and transmitter 205, transmits the program material and program controlinformation to the satellite 208. The satellite 208 receives andprocesses this information, and transmits the video programs and controlinformation to the subscriber receiver station 210 via downlink 218using one or more transponders 207 or transmitters. The subscriberreceiving station 210 comprises a receiver communicatively coupled to anoutdoor unit (ODU) 212 and a display 221. The receiver processes theinformation received from the satellite 208 and provides the processedinformation to the display 221 for viewing by the subscriber 222. TheODU 212 may include a subscriber antenna and a low noise block converter(LNB).

In one embodiment, the subscriber receiving station antenna is an18-inch slightly oval-shaped antenna. Standard definition transmissionsare typically in the Ku-band, while the high definition (HD)transmissions are typically in the Ka band. The slight oval shape is dueto the 22.5 degree offset feed of the LNB which is used to receivesignals reflected from the subscriber antenna. The offset feed positionsthe LNB out of the way so it does not block any surface area of theantenna minimizing attenuation of the incoming microwave signal.

The distribution system 200 can comprise a plurality of satellites 208in order to provide wider terrestrial coverage, to provide additionalchannels, or to provide additional bandwidth per channel. In oneembodiment of the invention, each satellite comprises 16 transponders toreceive and transmit program material and other control data from theuplink center 204 and provide it to the subscriber receiving stations210. Using data compression and multiplexing techniques, two satellites208 working together can receive and broadcast over 150 conventional(non-HDTV) audio and video channels via 32 transponders.

While embodiments of the invention disclosed herein will be describedwith reference to a satellite based distribution system 200, embodimentsof the invention may also be practiced with terrestrial-basedtransmission of program information, whether by broadcasting means,cable, or other means. Further, the different functions collectivelyallocated among the control center 202 and the uplink center 204 asdescribed above can be reallocated as desired without departing from theintended scope of embodiments of the present invention.

Although the foregoing has been described with respect to an embodimentin which the program material delivered to the subscriber 222 is video(and audio) program material such as a movie, the foregoing method canbe used to deliver program material comprising purely audio informationor other data as well. It is also used to deliver current receiversoftware and announcement schedules for the receiver to rendezvous tothe appropriate downlink 218. Link 220 may be used to report thereceiver's current software version.

Uplink Configuration

FIG. 3 is a block diagram showing a typical uplink configuration for asingle satellite 108 transponder, showing how video program material isuplinked to the satellite 108 by the control center 102 and the uplinkcenter 104. FIG. 3 shows three video channels (which could be augmentedrespectively with one or more audio channels for high fidelity music,soundtrack information, or a secondary audio program for transmittingforeign languages), a data channel from a program guide subsystem 306and computer data information from a computer data source 308.

The video channels are provided by a program source of video material300A-300C (collectively referred to hereinafter as video source(s) 300).The data from each video program source 300 is provided to an encoder302A-302C (collectively referred to hereinafter as encoder(s) 302). Eachof the encoders accepts a program time stamp (PTS) from the controller316. The PTS is a wrap-around binary time stamp that is used to assurethat the video information is properly synchronized with the audioinformation after encoding and decoding. A PTS time stamp is sent witheach I-frame of the MPEG encoded data.

In one embodiment of the present invention, each encoder 302 is a secondgeneration Motion Picture Experts Group (MPEG-2) encoder, but otherdecoders implementing other coding techniques can be used as well. Thedata channel can be subjected to a similar compression scheme by anencoder (not shown), but such compression is usually either unnecessary,or performed by computer programs in the computer data source (forexample, photographic data is typically compressed into *.TIF files or*.JPG files before transmission). After encoding by the encoders 302,the signals are converted into data packets by a packetizer 304A-304F(collectively referred to hereinafter as packetizer(s) 304) associatedwith each source 300.

The data packets are assembled using a reference from the system clock314 (SCR), and from the conditional access manager 310, which providesthe SCID to the packetizers 304 for use in generating the data packets.These data packets are then multiplexed into serial data andtransmitted.

Program Guide Subsystem

FIG. 4 is a block diagram of one embodiment of the program guideservices/subsystem 316. The program guide data transmitting system 316includes program guide database 402, compiler 404, sub-databases406A-406C (collectively referred to as sub-databases 406) and cyclers408A-408C (collectively referred to as cyclers 408).

Schedule feeds 410 provide electronic schedule information about thetiming and content of various television channels, such as that found intelevision schedules contained in newspapers and television guides.Schedule feeds 410 preferably include information from one or morecompanies that specialize in providing schedule information, such asGNS, TRIBUNE MEDIA SERVICES, and T.V. DATA. The data provided bycompanies such as GNS, TRIBUNE MEDIA SERVICES and T.V. DATA aretypically transmitted over telephone lines or the Internet to programguide database 402. These companies provide television schedule data forall of the television stations across the nation plus the nationwidechannels, such as SHOWTIME, HBO, and the DISNEY CHANNEL. The specificformat of the data that are provided by these companies varies fromcompany to company. Program guide database 402 preferably includesschedule data for television channels across the entire nation includingall nationwide channels and local channels, regardless of whether thechannels are transmitted by the transmission station.

Program guide database 402 is a computer-based system that receives datafrom schedule feeds 410 and organizes the data into a standard format.Compiler 404 reads the standard form data out of program guide database402, identifies common schedule portions, converts the program guidedata into the proper format for transmission to users (specifically, theprogram guide data are converted into objects as discussed below) andoutputs the program guide data to one or more of sub-databases 408.

Program guide data are also manually entered into program guide database402 through data entry station 412. Data entry station 412 allows anoperator to enter additional scheduling information, as well ascombining and organizing data supplied by the scheduling companies. Aswith the computer organized data, the manually entered data areconverted by the compiler into separate objects and sent to one or moreof sub-databases 406.

The program guide objects are temporarily stored in sub-databases 406until cyclers 408 request the information. Each of cyclers 408preferably transmits objects at a different rate than the other cyclers408. For example, cycler 408A may transmit objects every second, whilecyclers 408B and 408C may transmit objects every 5 seconds and every 10seconds, respectively.

Since the subscriber's receivers may not always be on and receiving andsaving objects, the program guide information is continuouslyre-transmitted. Program guide objects for programs that will be shown inthe next couple of hours are sent more frequently than program guideobjects for programs that will be shown later. Thus, the program guideobjects for the most current programs are sent to a cycler 408 with ahigh rate of transmission, while program guide objects for laterprograms are sent to cyclers 408 with a lower rate of transmission. Oneor more of the data outputs 414 of cyclers 408 are forwarded to thepacketizer of a particular transponder.

It is noted that the uplink configuration depicted in the prior figuresand the program guide subsystem depicted in FIG. 4 can be implemented byone or more hardware modules, one or more software modules defininginstructions performed by a processor, or a combination of both.

Broadcast Data Stream Format and Protocol

FIG. 5A is a diagram of a representative data stream. The first packetsegment 502 comprises information from video channel 1 (data comingfrom, for example, the video sources 300A). The next packet segment 504comprises computer data information that was obtained, for example froma computer data source. The next packet segment 506 comprisesinformation from video channel 5 (from one of the video program sources300A). The next packet segment 508 comprises program guide informationsuch as the information provided by the program guide subsystem 306. Asshown in FIG. 5A, null packets 510 created by a null packet module maybe inserted into the data stream as desired.

The data stream therefore comprises a series of packets from any one ofthe data sources in an order determined by a controller. The data streamis encrypted by an encryption module 318, modulated by the modulator 320(typically using a QPSK modulation scheme), and provided to atransmitter 322, that broadcasts the modulated data stream on afrequency bandwidth to the satellite via the antenna 106. Thereceiver/STB 210 receives these signals, and using the SCID, reassemblesthe packets to regenerate the program material for each of the channels.

FIG. 5B is a diagram showing one embodiment of a data packet for onetransport protocol that can be used with embodiments of the presentinvention. Each data packet (e.g. 502-516) is 147 bytes long, andcomprises a number of packet segments. The first packet segment 520comprises two bytes of information containing the SCID and flags. TheSCID is a unique 12-bit number that uniquely identifies the datapacket's data channel. The flags include 4 bits that are used to controlwhether the packet is encrypted, and what key must be used to decryptthe packet. The second packet segment 522 is made up of a 4-bit packettype indicator and a 4-bit continuity counter. The packet typeidentifies the packet as one of the four data types (video, audio, data,or null). When combined with the SCID, the packet type determines howthe data packet will be used. The continuity counter increments once foreach packet type and SCID. The next packet segment 524 comprises 127bytes of payload data, which is a portion of the video program providedby the video sources 200 or other audio or data sources. The finalpacket segment 526 is data required to perform forward error correction.

Embodiments of the present invention may also be implemented using MPEGtransport protocols. FIG. 5C is a diagram showing another embodiment ofa data packet for the MPEG-2 protocol. Each data packet comprises a syncbyte 550, three transport flags 552, and a packet identifier (PID) 554.The sync byte 550 is used for packet synchronization. The transportflags include a transport error indicator flat (set if errors cannot becorrected in the data stream), a payload unit start indicator (indictingthe start of PES data or PSI data, and a transport priority flag). ThePID 554 is analogous to the SCID discussed above in that it identifies adata channel. A demultiplexer in the transport chip discussed belowextracts elementary streams from the transport stream in part by lookingfor packets identified by the same PID. The scramble control flag 556indicates how the payload is scrambled, the adaptation field flag 558indicates the presence of an adaptation field 562, and the payload flag560 indicates that the packet includes payload 564. The final packetsegment 566 is data required to perform forward error correction.

Set Top Box

FIG. 6 is a block diagram of a set top box (STB) 210 (also hereinafteralternatively referred to as receiver or integrated receiver/decoder, orIRD). The set top box 210 is part of the receiver station and maycomprise a tuner/demodulator 604 communicatively coupled to an ODU 112having one or more LNBs 602. The LNB 602 converts the 12.2 to 12.7 GHzdownlink signal 118 from the satellites 108 to, e.g., a 950-1450 MHzsignal required by the set top box's 210 tuner/demodulator 604. The LNB602 may provide either a dual or a single output. The single-output LNB602 has only one RF connector, while the dual output LNB 602 has two RFoutput connectors and can be used to feed a second tuner 604, a secondset top box 210 or some other form of distribution system.

The tuner/demodulator 604 isolates a single, digitally modulatedtransponder, and converts the modulated data to a digital data stream.As packets are received, the tuner/demodulator 604 identifies the typeof each packet. If tuner/demodulator 604 identifies a packet as programguide data, tuner/demodulator 604 outputs the packet to memory. Thedigital data stream is then supplied to a forward error correction (FEC)decoder 606. This allows the set top box 210 to reassemble the datatransmitted by the uplink center 104 (which applied the forward errorcorrection to the desired signal before transmission to the subscriberreceiving station 210) verifying that the correct data signal wasreceived and correcting errors, if any. The error-corrected data may befed from the FEC decoder module 606 to the transport module 608 via an8-bit parallel interface.

The transport module 608 performs many of the data processing functionsperformed by the set top box 210 (e.g., using system random accessmemory 628). The transport module 608 processes data received from theFEC decoder module 606 and provides the processed data to the video MPEGdecoder 614, the audio MPEG decoder 616, and the microcontroller 610and/or data storage processor 630 for further data manipulation. In oneembodiment of the present invention, the transport module 608, videoMPEG decoder 614 and audio MPEG decoder 616 are all implemented onintegrated circuits. This design promotes both space and powerefficiency, and increases the security of the functions performed withinthe transport module 608. The transport module 608 also provides apassage for communications between the microprocessor 610 and the videoand audio MPEG decoders 614, 616. As set forth more fully hereinafter,the transport module 608 also works with the conditional access module(CAM) 612 to determine whether the subscriber receiving station 210 ispermitted to access certain program material. Data from the transportmodule 608 can also be supplied to external communication module 626.

The CAM 612 functions in association with other elements to decode anencrypted signal from the transport module 608. The CAM 612 may also beused for tracking and billing these services. In one embodiment of thepresent invention, the CAM 612 is a smart card, having contactscooperatively interacting with contacts in the set top box 600 to passinformation. In order to implement the processing performed in the CAM612, the set top box 210, and specifically the transport module 608provides a clock signal to the CAM 612.

Video data is processed by the MPEG video decoder 614. Using the videorandom access memory (RAM) 636, the MPEG video decoder 614 decodes thecompressed video data and sends it to an encoder or video processor 615,which converts the digital video information received from the videoMPEG module 614 into an output signal usable by a display or otheroutput device. By way of example, processor 615 may comprise a NationalTV Standards Committee (NTSC) or Advanced Television Systems Committee(ATSC) encoder. In one embodiment of the invention both S-Video,baseband video and RF modulated video (NTSC or ATSC) signals areprovided. Other outputs may also be utilized, and are advantageous ifhigh definition programming is processed. Such outputs may include, forexample, component video and the high definition multimedia interface(HDMI).

Using the audio RAM 620, audio data is likewise decoded by the MPEGaudio decoder 616. The decoded audio data may then be sent to a digitalto analog (D/A) converter 618. In one embodiment of the presentinvention, the D/A converter 618 is a dual D/A converter, one for theright and left channels. If desired, additional channels can be addedfor use in surround sound processing or secondary audio programs (SAPs).In one embodiment of the invention, the dual D/A converter 618 itselfseparates the left and right channel information, as well as anyadditional channel information. Other audio formats such as DOLBYDIGITAL AC-3 may similarly be supported.

A description of the processes performed in the encoding and decoding ofvideo streams, particularly with respect to MPEG and JPEGencoding/decoding, can be found in Chapter 8 of “Digital TelevisionFundamentals,” by Michael Robin and Michel Poulin, McGraw-Hill, 1998,which is hereby incorporated by reference herein.

The microprocessor 610 receives and processes command signals from theremote control 624, a set top box 210 keyboard interface, modem 640, andtransport 608. The microcontroller 610 receives commands for performingits operations from a processor programming memory, which permanentlystores such instructions for performing such commands. The memory usedto store data for microprocessor 610 and/or transport 608 operations maycomprise a read only memory (ROM) 638, an electrically erasableprogrammable read only memory (EEPROM) 622, a flash memory 652 and/or arandom access memory 650, and/or similar memory devices. Themicroprocessor 610 also controls the other digital devices of the settop box 210 via address and data lines (denoted “A” and “D”respectively, in FIG. 6).

As used herein, the remote control 624 may be a touch screen device suchas a smartphone, a tablet computer, a personal digital assistant, etc.Such a remote control 624 may provide the ability to control theplayback via the UI component described herein (on a display device[e.g., a television monitor]) of video content stored within ortransmitted via STB 210. Alternatively, remote control 624 may functionas the display device itself, and video content may be directly receivedin remote control 624 via STB 210, or may be received via a modem orother receiving means within remote control 624 (e.g., an antenna orother means to receive broadcast content, a Wi-Fi adapter, via USBconnected to a computer or other device, etc.) such that the remotecontrol 624 may receive content via the Internet 220, a local or widearea network, or other transmissions medium and may display the UIcomponent as described herein.

The modem 640 connects to the customer's phone line via the PSTN port.Alternatively, the modem 640 may comprise an Ethernet connection orwireless adapter to connect to the customer's network and relatedInternet connection. The set top box 210 communicates with (e.g., viathe modem 640) the head end 104, e.g. the program provider, andtransmits the customer's purchase information for billing purposes,and/or other information. The modem 640 is controlled by themicroprocessor 610. The modem 640 can output data to other I/O porttypes including standard parallel and serial computer I/O ports. Datacan also be obtained from a cable or digital subscriber line (DSL)modem, or any other suitable source. Further, the modem 640 may beutilized to maintain the persistent connection with the head end 104 asdescribed above.

The set top box 210 may also comprise a local storage unit such as thestorage device 632 for storing video and/or audio and/or other dataobtained from the transport module 608. Video storage device 632 can bea hard disk drive, a read/writeable compact disc of DVD, a solid stateRAM, or any other storage medium. In one embodiment of the presentinvention, the video storage device 632 is a hard disk drive withspecialized parallel read/write capability so that data may be read fromthe video storage device 632 and written to the device 632 at the sametime. To accomplish this feat, additional buffer memory accessible bythe video storage 632 or its controller may be used. Optionally, a videostorage processor 630 can be used to manage the storage and retrieval ofthe video, audio, and/or other data from the storage device 632. Thevideo storage processor 630 may also comprise memory for buffering datapassing into and out of the video storage device 632. Alternatively orin combination with the foregoing, a plurality of video storage devices632 can be used. Also alternatively or in combination with theforegoing, the microprocessor 610 can also perform the operationsrequired to store and or retrieve video and other data in the videostorage device 632.

The video processing module 615 output can be directly supplied as avideo output to a viewing device such as a video or computer monitor. Inaddition the video and/or audio outputs can be supplied to an RFmodulator 634 to produce an RF output and/or 8 vestigial side band (VSB)suitable as an input signal to a conventional television tuner. Thisallows the set top box 600 to operate with televisions without a videoinput.

Each of the satellites 108 comprises one or more transponders, each ofwhich accepts program information from the uplink center 104, and relaysthis information to the subscriber receiving station 110. Knownmultiplexing techniques are used so that multiple channels can beprovided to the user. These multiplexing techniques include, by way ofexample, various statistical or other time domain multiplexingtechniques and polarization multiplexing. In one embodiment of theinvention, a single transponder operating at a single frequency bandcarries a plurality of channels identified by respective SCIDs.

Preferably, the set top box 210 also receives and stores a program guidein a memory available to the microprocessor 610. Typically, the programguide is received in one or more data packets in the data stream fromthe satellite 108. The program guide can be accessed and searched by theexecution of suitable operation steps implemented by the microcontroller610 and stored in the processor ROM 638. The program guide may includedata to map viewer channel numbers to satellite networks, satellitetransponders and SCIDs, and also provide TV program listing informationto the subscriber 122 identifying program events.

Initially, as data enters the set top box 210, the tuner/demodulator 604looks for a boot object. Boot objects are always transmitted with thesame SCID number, so tuner 604 knows that it must look for packetsmarked with that identification number. A boot object identifies theidentification numbers where all other objects can be found. Further,such boot objects may initiate the persistent connection methodsdescribed above.

As data is received and stored in the memory, the microprocessor 610acts as a control device and performs various operations on the data inpreparation for processing the received data. These operations includepacket assembly, object assembly and object processing.

The first operation performed on data objects stored in the memory 650is packet assembly. During the packet assembly operation, microprocessor610 examines the stored data and determines the locations of the packetboundaries.

The next step performed by microprocessor 610 is object assembly. Duringthe object assembly step, microprocessor 610 combines packets to createobject frames, and then combines the object frames to create objects.Microprocessor 610 examines the checksum transmitted within each objectframe, and verifies whether the frame data was accurately received. Ifthe object frame was not accurately received, it is discarded frommemory 650. Also during the object assembly step, the microprocessor 610discards assembled objects that are of an object type that themicroprocessor 610 does not recognize. The set top box 210 maintains alist of known object types in memory 650. The microprocessor 610examines the object header of each received object to determine theobject type, and the microprocessor 610 compares the object type of eachreceived object to the list of known object types stored in memory 650.If the object type of an object is not found in the list of known objecttypes, the object is discarded from memory 650. Similarly, the set topbox 210 maintains a list of known descriptor types in memory 650, anddiscards any received descriptors that are of a type not in the list ofknown descriptor types.

The last step performed by microprocessor 610 on received object data isobject processing. During object processing, the objects stored in thememory 650 are combined to create a digital image. Instructions withinthe objects direct microprocessor 610 to incorporate other objects orcreate accessible user-links. Some or all of the digital images can belater converted to an analog signal that is sent by the set top box 210to a television or other display device for display to a user.

The functionality implemented in the set top box 600 depicted in FIG. 6can be implemented by one or more hardware modules, one or more softwaremodules defining instructions performed by a processor, or a combinationof both.

Computer Hardware/Software

FIG. 7 is an exemplary hardware and software environment 700 used toimplement one or more embodiments of the invention. The hardware andsoftware environment includes a computer 702 and may includeperipherals. Computer 702 may be a user/client computer, servercomputer, or may be a database computer. The computer 702 comprises ageneral purpose hardware processor 704A and/or a special purposehardware processor 704B (hereinafter alternatively collectively referredto as processor 704) and a memory 706, such as random access memory(RAM). The computer 702 may be coupled to, and/or integrated with, otherdevices, including input/output (I/O) devices such as a keyboard 714, acursor control device 716 (e.g., a mouse, a pointing device, pen andtablet, touch screen, multi-touch device, etc.) and a printer 728. Inone or more embodiments, computer 702 may be coupled to, or maycomprise, a portable or media viewing/listening or remote control device732 (e.g., an MP3 player, iPod™, Nook™, portable digital video player,cellular device, personal digital assistant, remote control, etc.). Inyet another embodiment, the computer 702 may comprise a multi-touchdevice, mobile phone, gaming system, internet enabled television,television set top box, or other internet enabled device executing onvarious platforms and operating systems.

In one embodiment, the computer 702 operates by the general purposeprocessor 704A performing instructions defined by the computer program710 under control of an operating system 708. The computer program 710and/or the operating system 708 may be stored in the memory 706 and mayinterface with the user and/or other devices to accept input andcommands and, based on such input and commands and the instructionsdefined by the computer program 710 and operating system 708, to provideoutput and results.

Output/results may be presented on the display 722 or provided toanother device for presentation or further processing or action. In oneembodiment, the display 722 comprises a liquid crystal display (LCD)having a plurality of separately addressable liquid crystals.Alternatively, the display 722 may comprise a light emitting diode (LED)display having clusters of red, green and blue diodes driven together toform full-color pixels. Each liquid crystal or pixel of the display 722changes to an opaque or translucent state to form a part of the image onthe display in response to the data or information generated by theprocessor 704 from the application of the instructions of the computerprogram 710 and/or operating system 708 to the input and commands. Theimage may be provided through a UI module 718. Although the UI module718 is depicted as a separate module, the instructions performing the UIfunctions can be resident or distributed in the operating system 708,the computer program 710, or implemented with special purpose memory andprocessors.

In one or more embodiments, the display 722 is integrated with/into thecomputer 702 and comprises a multi-touch device having a touch sensingsurface (e.g., track pod or touch screen) with the ability to recognizethe presence of two or more points of contact with the surface. Examplesof multi-touch devices include mobile devices (e.g., iPhone™, Nexus S™,Droid™ devices, etc.), tablet computers (e.g., iPad™, HP Touchpad™),portable/handheld game/music/video player/console devices (e.g., iPodTouch™, MP3 players, Nintendo 3DS™, PlayStation Portable™ etc.), touchtables, and walls (e.g., where an image is projected through acrylicand/or glass, and the image is then backlit with LEDs).

Some or all of the operations performed by the computer 702 according tothe computer program 710 instructions may be implemented in a specialpurpose processor 704B. In this embodiment, the some or all of thecomputer program 710 instructions may be implemented via firmwareinstructions stored in a read only memory (ROM), a programmable readonly memory (PROM) or flash memory within the special purpose processor704B or in memory 706. The special purpose processor 704B may also behardwired through circuit design to perform some or all of theoperations to implement the present invention. Further, the specialpurpose processor 704B may be a hybrid processor, which includesdedicated circuitry for performing a subset of functions, and othercircuits for performing more general functions such as responding tocomputer program 710 instructions. In one embodiment, the specialpurpose processor 704B is an application specific integrated circuit(ASIC).

The computer 702 may also implement a compiler 712 that allows anapplication or computer program 710 written in a programming languagesuch as COBOL, Pascal, C++, FORTRAN, or other language to be translatedinto processor 704 readable code. Alternatively, the compiler 712 may bean interpreter that executes instructions/source code directly,translates source code into an intermediate representation that isexecuted, or that executes stored precompiled code. Such source code maybe written in a variety of programming languages such as Java™ Perl™,Basic™, etc. After completion, the application or computer program 710accesses and manipulates data accepted from I/O devices and stored inthe memory 706 of the computer 702 using the relationships and logicthat were generated using the compiler 712.

The computer 702 also optionally comprises an external communicationdevice such as a modem, satellite link, Ethernet card, or other devicefor accepting input from, and providing output to, other computers 702.

In one embodiment, instructions implementing the operating system 708,the computer program 710, and the compiler 712 are tangibly embodied ina non-transitory computer-readable medium, e.g., data storage device720, which could include one or more fixed or removable data storagedevices, such as a zip drive, floppy disc drive 724, hard drive, CD-ROMdrive, tape drive, etc. Further, the operating system 708 and thecomputer program 710 are comprised of computer program 710 instructionswhich, when accessed, read and executed by the computer 702, cause thecomputer 702 to perform the steps necessary to implement and/or use thepresent invention or to load the program of instructions into a memory706, thus creating a special purpose data structure causing the computer702 to operate as a specially programmed computer executing the methodsteps described herein. Computer program 710 and/or operatinginstructions may also be tangibly embodied in memory 706 and/or datacommunications devices 730, thereby making a computer program product orarticle of manufacture according to the invention. As such, the terms“article of manufacture,” “program storage device,” and “computerprogram product,” as used herein, are intended to encompass a computerprogram accessible from any computer readable device or media.

Of course, those skilled in the art will recognize that any combinationof the above components, or any number of different components,peripherals, and other devices, may be used with the computer 702.

FIG. 8 schematically illustrates a typical distributed computer system800 using a network 804 to connect client computers 802 to servercomputers 806. A typical combination of resources may include a network804 comprising the Internet, LANs (local area networks), WANs (wide areanetworks), SNA (systems network architecture) networks, or the like,clients 802 that are personal computers or workstations (as set forth inFIG. 7), and servers 806 that are personal computers, workstations,minicomputers, or mainframes (as set forth in FIG. 7). However, it maybe noted that different networks such as a cellular network (e.g., GSM[global system for mobile communications] or otherwise), a satellitebased network, or any other type of network may be used to connectclients 802 and servers 806 in accordance with embodiments of theinvention.

A network 804 such as the Internet connects clients 802 to servercomputers 806. Network 804 may utilize Ethernet, coaxial cable, wirelesscommunications, radio frequency (RF), etc. to connect and provide thecommunication between clients 802 and servers 806. Clients 802 mayexecute a client application or web browser and communicate with servercomputers 806 executing web servers 810. Such a web browser is typicallya program such as MICROSOFT INTERNET EXPLORER™ MOZILLA FIREFOX™, OPERA™,APPLE SAFARI™, GOOGLE CHROME™, etc. Further, the software executing onclients 802 may be downloaded from server computer 806 to clientcomputers 802 and installed as a plug-in or ACTIVEX™ control of a webbrowser. Accordingly, clients 802 may utilize ACTIVEX™components/component object model (COM) or distributed COM (DCOM)components to provide a UI on a display of client 802. The web server810 is typically a program such as MICROSOFT'S INTERNET INFORMATIONSERVER™.

Web server 810 may host an Active Server Page (ASP) or Internet ServerApplication Programming Interface (ISAPI) application 812, which may beexecuting scripts. The scripts invoke objects that execute businesslogic (referred to as business objects). The business objects thenmanipulate data in database 816 through a database management system(DBMS) 814. Alternatively, database 816 may be part of, or connecteddirectly to, client 802 instead of communicating/obtaining theinformation from database 816 across network 804. When a developerencapsulates the business functionality into objects, the system may bereferred to as a component object model (COM) system. Accordingly, thescripts executing on web server 810 (and/or application 812) invoke COMobjects that implement the business logic. Further, server 806 mayutilize MICROSOFT′ S™ Transaction Server (MTS) to access required datastored in database 816 via an interface such as ADO (Active DataObjects), OLE DB (Object Linking and Embedding DataBase), or ODBC (OpenDataBase Connectivity).

Generally, these components 800-816 all comprise logic and/or data thatis embodied in/or retrievable from device, medium, signal, or carrier,e.g., a data storage device, a data communications device, a remotecomputer or device coupled to the computer via a network or via anotherdata communications device, etc. Moreover, this logic and/or data, whenread, executed, and/or interpreted, results in the steps necessary toimplement and/or use the present invention being performed.

Although the terms “user computer”, “client computer”, and/or “servercomputer” are referred to herein, it is understood that such computers802 and 806 may be interchangeable and may further include thin clientdevices with limited or full processing capabilities, portable devicessuch as cell phones, notebook computers, pocket computers, multi-touchdevices, and/or any other devices with suitable processing,communication, and input/output capability. Embodiments of the inventionare implemented as a software application on a client 802 or servercomputer 806. Further, as described above, the client 802 or servercomputer 806 may comprise a thin client device or a portable device thathas a multi-touch-based display.

Of course, those skilled in the art will recognize that any combinationof the above components, or any number of different components,peripherals, and other devices, may be used with computers 802 and 806.

Media Content Player Control Interface

Interface Control and Interaction

As described above, embodiments of the invention may be implemented viaand integrated with a variety of different environments including asatellite television broadcast environment, and/or via the Internet(e.g., via a computer). The different environments have a commonattribute/capability—that of providing a UI that may be used to controlthe play of media content (e.g., video). Such hardware/softwareenvironments may be provided via a touchscreen computer (e.g., a tabletdevice such as an iPad™), a smartphone (e.g., an Apple™ based phone, anAndroid™ based phone, or other operating system based phone), a remotecontrol having a display/touchscreen, etc. Alternatively or in addition,the control interface may be displayed on a touchscreen or non-touchbased display where interaction with the control interface may beconducted via a remote control, mouse, stylus, finger gestures,3D/stereoscopic control devices (e.g., 3D interactive gloves or anyother type of virtual interactive devices), etc.

Further to the above, embodiments of the invention may be incorporatedinto any touchscreen (or non-touchscreen) based device mediacontent/video player application. Additionally, embodiments of theinvention may be incorporated into any (touchscreen) remote controlapplication.

Embodiments of the invention provide a UI component that is specificallyused for controlling and navigating video playback on a touchscreendevice. The component has a circular layout and provides UI elements forplaying, pausing, fast forwarding, rewinding, displaying of thumbnailsnapshots of scenes while rewinding and fast forwarding, volume control,closed captioning, toggling full screen video playback, bookmarking ofparticular frames of media content for later retrieval and use as wellas a feature that prevents the bypassing of advertisement insertionsduring video playback. The circular layout provides a superior userexperience to the traditional linear layout since it conforms to themore natural and intuitive circular gestures made by a user's thumb.

FIG. 9 illustrates an enlarged view of the circular UI component inaccordance with one or more embodiments of the invention. The circularUI component 900 consists of a circular progress bar 902, a circularkeyframe 904, a progress marker 906, icons 908-914, and an elapsed timeindicator 916.

The circular progress bar (CPB) is comprised of two parts: the fullcircle reference 902A, and the overlapped partial circle 902B(collectively referred to as CPB 902). The overlapped partial circle902B may be displayed in a contrasting color/pattern and indicates thepercentage of the video/media content that has been played. The CPB 902is drawn continuously during the time the video is being played. Everysecond, the video player object sends a notification to inform the CPB902 to redraw both its parts.

The full circle reference 902A is drawn as a circle (360 degrees) with apredefined radius. The overlapped partial circle 902B, indicating thepercentage of the video played is drawn by calculating the current timeof the program being played, and the duration of the program to producethe updated angle of the current moment of the program. The anglecalculation may be performed based on:angle=360 degrees−(currentTime/duration)*360)The overlapped partial circle 902B is drawn from 0 degrees to angledegrees.

A keyframe is a sprite image that is loaded before the video program isplayed. Keyframes are used to provide users a preview of the upcomingframes in a video program/media content. Standard keyframes arerectangular images. To fit the keyframes inside the CPB 902, thekeyframe 904 is placed in the middle of the CPB 902, and a circular maskis applied so that the user sees a circular keyframe 904 inside the CPB902. In FIG. 9, the keyframe 904 is illustrated in a hatch pattern butwhen used with/overlaid onto a media clip/video player, would be filledwith an actual keyframe of the video content.

The progress marker 906 is a circular knob that indicates the currentposition in time of the media content. The progress marker 906 ispositioned at 0 degrees at the initialization of the media content. Asthe media content is viewed, the progress marker 906 is updatedaccordingly and is positioned at angle degrees. The user may interactwith the progress marker 906 to rewind and fast forward the videoprogram. The progress marker 906 is drawn every time the CPB 902 isdrawn.

The icons displayed beneath CPB 902 include a volume icon 908 (toactivate volume control capability), a closed caption icon 910 (totoggle on and off closed captioning of the media content), a bookmarkicon 912 (to bookmark desired media content frames or moments in time),and a full screen icon 914 (to expand/contract the media content tooccupy the full viewing area of the display device/screen). In addition,the current elapsed time 916 of the media content (synchronized with thecurrent position of the progress marker 906) may be displayed in hours,minutes, and seconds (HH:MM:SS) above CPB 902.

FIG. 9 also illustrates pause/play icon 918 that is centrally displayedwithin CPB 902. In FIG. 9, the media content/video has been pausedthereby causing icon 918 to display. The user may simply tap/touch icon918 (or anywhere on the display device) to begin playback of the mediacontent.

Of note is that the circular UI component may be activated for displayduring playback by the user tapping/touching the display device and/or aparticular location on the display device (e.g., with a finger, stylus,cursor, etc.). Such a touch event may activate the circular UI component900 for user interaction. If the user does not interact with thecircular UI component 900 after a defined period of time (e.g., 5seconds), the component 900 may fade out and/or will no longer bedisplayed. The area in between the CPB 902 and the keyframe 904 (i.e.,area 920) may be transparent such that the media content/video that isbeing watched can be seen through area 920.

The keyframe 904 that is displayed within CPB 902 may vary. For example,if the progress marker 906 is synchronized with the current mediacontent location, the keyframe 904 may match the frame that that isdisplayed in the media content player. Alternatively, if the user haselected to scrub forward or back (e.g., using progress marker 906), thekeyframe 904 that is displayed within CPB 902 may reflect the locationof the progress marker 906. In other words, as the user is scrubbing themedia content forward or backward (e.g., by moving/sliding the progressmarker 906 around CPB 902), different keyframes 904 are displayed thatreflect the location of the progress marker 906. In one or moreembodiments, such keyframes may comprise an I-frame (intra codedframe/slice). However, other frames (e.g., B-frames or P-frames) mayalso be displayed.

FIG. 10 illustrates an exemplary view of the UI component 900 that hasbeen activated when playing back media content (e.g., the movie “Her”)in accordance with one or more embodiments of the invention. Asillustrated, the user has paused playback at the location of theprogress marker 906 and the keyframe 904 is synchronized with the frame1000 displayed in the video player. The user can select a differentlocation within the media content simply by moving/sliding progressmarker 906 along CPB 902. While any finger digit may be utilized, the UIcomponent 900 may be placed at a location of a touchscreen device (e.g.,adjacent the edge or lower right corner) to facilitate movement with theuser's thumb. In this regard, the user may still hold the touchscreendevice with his/her right hand (and/or left hand) while moving theprogress marker 906 along CPB 902 in a circular motion that isnatural/intuitive and/or consistent with the user's thumb's naturalrotational angle. Additionally, the user may continue the scrubbinggesture outside of CPB 902 (only after the scrubbing gesture has beeninitiated) to provide further granularity and ease of use. The furtherfrom CPB 902 the user scrubs, the more granular the scrubbing gesturewill be. The user may also have the option of moving UI component 900 toone of various predefined locations (e.g., it may snap to a particularlocation such as upper right, upper left, lower left, or lower right),and/or to a user defined location (i.e., that has no limitations withinthe video player).

When the user has elected to begin a scrubbing gesture (e.g., to rewindor fast forward the media content), activation of such a scrubbinggesture may be visually indicated by the UI component 900. In one ormore embodiments, such a visual indication consists of displaying acircle around progress marker 906. Once the user slides the progressmarker 906 to a new location within CPB 902, the keyframe 904 is updatedwithin CPB 902. FIG. 11 illustrates an exemplary view of the UIcomponent where the user has scrubbed to a new location using UIcomponent 900 in accordance with one or more embodiments of theinvention. As illustrated, the keyframe associated with the location ofprogress marker 906 is displayed within CPB 902. Further, a circle 1102is displayed around progress marker 906 thereby indicating an activescrub command is executing. Once the user releases the touch event(i.e., lifts his/her thumb off of the progress marker 906), the videoplayer may automatically (i.e., without additional user input)advance/rewind to the scrubbed location and commence playback from sucha location.

To activate the volume control, the user may touch and/or select icon908. Activation of icon 908 is indicated by displaying icon 908 in adifferent color/pattern/etc. Once activated, a volume scrubber bar 1200is displayed as in FIG. 12. Such a volume scrubber bar 1200 may be asolid color, may fade towards the ends, may have different colors, etc.A volume progress marker 1202 indicates the current volume level thathas been selected. The user can simply slide/move the volume progressmarker 1202 along volume scrubber bar 1200 to adjust the volume asdesired. Similar to progress marker 906, volume progress marker 1202 maybe moved using a thumb gesture in a circular pattern that isnatural/intuitive and/or is consistent with the user's thumb's naturalrotational angle.

FIG. 13 illustrates an exemplary view of the UI component 900 in whichthe volume control has been activated in accordance with one or moreembodiments of the invention.

Video Frame Bookmarking

Embodiments of the invention may further allow a user to bookmarkdesired frames in a video. The user has the option to bookmark the frameof the video that is displayed when the video is paused. If the framedisplayed when the video is paused is already bookmarked, the user hasthe option to remove the bookmark. Such a bookmarking capabilityenhances the user experience by addressing a need users naturally haveto record and recall significant moments in a video for either personalor social use. Further, such bookmarking has a wide range of uses andapplications (e.g., within any touchscreen device video playerapplication or any touchscreen device remote control application).

FIG. 14 illustrates an exemplary view of the UI component 900 whereplayback has been paused and a bookmark has been set at the pauselocation in accordance with one or more embodiments of the invention. Inparticular, the user has touched/selected bookmark icon 912 (indicatedin FIG. 14 with a change in the icon's color/fill pattern) when comparedto bookmark icon 912 in FIG. 12.

FIG. 15 illustrates an exemplary view of the UI component 900 with abookmark indicator displayed in accordance with one or more embodimentsof the invention. As illustrated, as the user scrubs forward or back, acircle 1502 is displayed around progress marker 906. Further, a bookmarkindicator 1504 identifies the location of the frame that was bookmarkedin FIG. 14. As described above, once the user has scrubbed to a newlocation within CPB 902, the keyframe 904 displayed inside of CPB 902changes to reflect the location of the progress marker 906. Thereafter,whenever the progress marker 906 is placed over the bookmarked location1504, the bookmark icon 912 may indicate the location (e.g., asillustrated in FIG. 14 by a contrasting color/fill). In one or moreembodiments, as the progress marker 906 is moved within a definedthreshold range of the bookmarked location 1504, the progress marker 906may snap to the bookmarked location 1504 (thereby enabling easy andefficient navigation to the exact bookmarked location 1504).

FIG. 16 illustrates a view of the UI component of FIG. 15 being utilizedin a video player in accordance with one or more embodiments of theinvention.

Advertising Bypass Prevention UI Component

Embodiments of the invention may also prevent a user from bypassingadvertisement insertions during video playback. If there areadvertisement insertions in the media content and a user begins toscrub, the keyframe 904 is displayed inside of CPB 902 as describedabove. When the user reaches the point where there is an advertisementinsertion, a thumbnail of the advertisement instead of a frame of themedia content is displayed in keyframe 904. When attempting to bypass anadvertisement when viewing thumbnails 904 of media content whilerewinding or fast-forwarding by scrubbing beyond it, the user ispermitted to extend the progress marker 906 slightly beyond theadvertisement before the progress marker 906 snaps back to the point ofthe advertisement, preventing the user from proceeding without watchingthe advertisement. This progress marker 906 “stickiness” will continueuntil the user has viewed the advertisement. Embodiments of theinvention may also vibrate as a way to provide haptic feedback.

Based on such advertising bypass prevention, the user experience may beenhanced by transforming a typical nuisance (being required to watch anadvertisement) into a playful interaction.

FIGS. 17A-17D illustrate the various states of a UI component whereadvertising bypass is prevented in accordance with one or moreembodiments of the invention. When there is an advertisement, theadvertisement thumbnail 1702 may be displayed within CPB 902.Embodiments of the invention do not permit the user to scrub ahead ofthe advertisement. As illustrated in FIG. 17A, the user has begunscrubbing, as indicated by the circle 1704 around progress marker 906.As the user scrubs forward (i.e., progressing from FIG. 17A to FIG. 17Bto FIG. 17C to FIG. 17D), the round progress marker 906 and circularindicator 1704 morph into a rubbery blob 1706 as indicated in FIGS. 17B,17C, and 17D. The rubbery blob 1706 can be stretched as illustrated inFIGS. 17B-17D but snaps back into the round indicator 906 (asillustrated in FIG. 17A) before the advertisement is played.Accordingly, the user is not permitted to scrub past the advertisement.

Logical Flow

FIG. 18 illustrates the logical flow for controlling media content playin accordance with one or more embodiments of the invention.

At step 1802, a UI component that controls playback of the media contentin a media player is activated (e.g., within the media player on atouchscreen device or on a touchscreen device remote control thatcontrols the media player). The UI component includes a circularprogress bar and a progress marker that coincides with the circularprogress bar.

At step 1804, the media content is played in the media player. As themedia content is playing, the progress marker moves around the circularprogress bar reflecting the real time progress of the media contentbeing played. Further, the circular progress bar may be continuouslydrawn during the time the media content is being played. In addition,the circular progress bar may include a full circle reference that isdrawn as a circle with a predefined radius, and an overlapped partialcircle indicating a percentage of the media content played. The partialcircle may be drawn from zero (0) degrees to an “angle” degrees that isbased on a calculation of 360 degrees−((current time/duration)*360),wherein the “current time” is the current time of the media contentbeing played and the “duration” is the total duration of the mediacontent. The circular progress bar may also include a scaled circularkeyframe (displayed within the circular progress bar) that includes apreview of a frame of the media content located at a time within themedia content that is identified by the progress marker. In this regard,the scaled keyframe is a scaled version of a particular frame of themedia content. To display the scaled circular keyframe, a scaledrectangular keyframe may be displayed in the middle of the circularprogress bar, and a circular mask may then be applied.

At step 1806, based on user input, the progress marker moves along thecircular progress bar to rewind or fast forward the media content.

FIG. 19 illustrates the logical flow for bookmarking a frame of mediacontent in accordance with one or more embodiments of the invention.

At step 1902, a UI component (that includes a circular progress bar andthe capability to bookmark selected frames of media content beingplayed) is activated. The UI component includes an icon to enablebookmarking.

At step 1904, a frame within the media content is identified. Toidentify the frame, the user may pause play of the media content (in themedia player), and the identified frame is the frame that is displayedwhen the media content is paused (i.e., the frame displayed at the pausepoint).

At step 1906, the identified frame is bookmarked. To bookmark theidentified frame, a bookmark icon may be selected/touched therebyassociating a bookmark with the identified frame.

At step 1908, a bookmark indicator is displayed on (e.g., coincidentwith) the circular progress bar. Such a bookmark indicator reflects alocation in the media content where the bookmarked frame is located.

At step 1910, the bookmark indicator is selected. In an exemplaryembodiment, as the media player is playing the media content, a progressmarker moves (i.e., to a location that is different from the location ofthe bookmark) around the circular progress bar reflecting a progress ofthe playing. In such an embodiment, the user may select the bookmarkindicator by selecting/touching the bookmark indicator (e.g., on a touchscreen device) that is coincident/contained within a boundary of thecircular progress bar.

At step 1912, the media content is played from the bookmarked frame thatwas selected (i.e., that was identified by the bookmark indicator thatwas selected). Step 1912 may also include the pausing of the playback ofthe media content. When the pause point is located at the frame that hasbeen bookmarked, an option may be provided to remove the bookmark (e.g.,by selecting/touching the bookmark twice, touching a trashcan icon,etc.).

FIG. 20 illustrates the logical flow for preventing the bypass ofadvertisement viewing in accordance with one or more embodiments of theinvention.

At step 2002, a UI component/feature (for controlling the playback ofmedia content and advertisement) is activated. (e.g., within a mediaplayer on a touchscreen device or on a touchscreen device remote controlthat controls the media player). The UI component includes a circularprogress bar and a progress marker that coincides with the circularprogress bar (e.g., is displayed within the boundary region of thecircular progress bar). The circular progress bar may also include ascaled circular keyframe (consisting of a preview of a frame of themedia content or advertisement) displayed within the circular progressbar.

At step 2004, the media content is played in the media player. As themedia content is playing the progress marker moves around the circularprogress bar reflecting a progress of the media content being played.Further, at a defined point in the media content, an advertisement isplayed in the media player.

At step 2006, user input is accepted that advances the progress markeralong the circular progress bar to fast forward the media content basedon the user input (e.g., a thumb gesture). The user input furtherincludes an attempt to advance the progress marker a defined thresholddistance beyond/past the advertisement.

At step 2008, in response to the user input attempting to advance beyondthe advertisement, the progress marker is snapped back to theadvertisement, thereby preventing bypass of the advertisement. Theprogress marker may continue to/repeatedly snap back to theadvertisement until the advertisement has been viewed (e.g., completelyviewed or viewed a threshold amount). The device that the media contentuser interface control is executing on may vibrate when the progressmarker snaps back (thereby providing haptic feedback). Further, theoriginal form of the progress marker may be a geometrical shape (e.g., acircle, square, octagon, etc.). Such a geometrical shape may stretch asthe user input attempts to advance progress marker beyond theadvertisement. Once the progress marker snaps back to the advertisement,the original form of the geometric shape may return.

CONCLUSION

This concludes the description of the embodiments of the invention. Thefollowing describes some alternative embodiments for accomplishing thepresent invention. For example, any type of computer, such as amainframe, minicomputer, or personal computer, tablet device, satellitedistribution system, or computer configuration, such as a timesharingmainframe, local area network, or standalone personal computer, could beused with the present invention.

The foregoing description of embodiments of the invention has beenpresented for the purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdisclosed. Many modifications and variations are possible in light ofthe above teaching. It is intended that the scope of the invention belimited not by this detailed description, but rather by the claimsappended hereto.

What is claimed is:
 1. A computer-implemented method for bookmarking aframe of media content comprising: activating a user interface (UI)component that controls playback of the media content in a media player,wherein the UI component comprises a circular progress bar; displaying ascaled circular keyframe within the circular progress bar, wherein thescaled circular keyframe comprises a preview of the frame of the mediacontent located at a time within the media content that is identified bya progress marker; accepting user input identifying the frame within themedia content; accepting user input associating the frame with abookmark; displaying a bookmark indicator on the circular progress bar,wherein the bookmark indicator reflects a location in the media contentwhere the frame is located, and wherein the bookmark indicator isdifferent from the progress marker; accepting user input selecting thebookmark indicator; and in response to the user input selecting thebookmark indicator, playing the media content from the frame identifiedby the bookmark.
 2. The computer-implemented method of claim 1, whereinthe identifying the frame comprises: pausing play of the media contentin the media player; and identifying the frame that is displayed whenthe media content is paused.
 3. The computer-implemented method of claim1, wherein the bookmarking comprises: selecting a bookmark icon thatassociates the bookmark with the frame.
 4. The computer-implementedmethod of claim 1, wherein: the media player is configured to play themedia content, wherein as the media content is playing, the progressmarker moves around the circular progress bar reflecting a progress ofthe playing; the progress marker has moved to a location on the circularprogress bar that is different from the location of the bookmark; andwherein selecting the bookmark comprises selecting the bookmark on thecircular progress bar.
 5. The computer-implemented method of claim 1,wherein: the UI component is activated on a touch screen device; andselecting the bookmark indicator comprises touching the bookmarkindicator on the circular progress bar on a touchscreen.
 6. Thecomputer-implemented method of claim 1, further comprising: pausingplayback of the media content; determining that the pausing is locatedat the frame that has been bookmarked; and providing an option to removethe bookmark.
 7. A system for bookmarking a frame of media contentcomprising: (a) a computer comprising a processor; (b) a media playerexecuting on the computer via the processor; and (c) a user interface(UI) component that controls playback of the media content in the mediaplayer, wherein the UI component comprises: (1) a circular progress bar;(2) a scaled circular keyframe within the circular progress bar, whereinthe scaled circular keyframe comprises a preview of the frame of themedia content located at a time within the media content that isidentified by a progress marker; (3) a bookmark indicator that isdisplayed on the circular progress bar, wherein the bookmark indicatorreflects a location in the media content where the frame is located, andwherein the frame is identified by a user, and wherein the bookmarkindicator is different from the progress marker; and (4) a UI featurefor: (i) accepting user input identifying the frame within the mediacontent; (ii) accepting user input associating the frame with abookmark; (iii) accepting user input selecting the bookmark indicator;and (iv) in response to the user input selecting the bookmark indicator,playing the media content from the frame identified by the bookmarkindicator.
 8. The system of claim 7, wherein the identifying the framecomprises: pausing play of the media content in the media player; andidentifying the frame that is displayed when the media content ispaused.
 9. The system of claim 7, wherein the UI feature for associatingthe frame with a bookmark comprises: a bookmark icon that is selectedand that associates the bookmark with the frame.
 10. The system of claim7, wherein: the media player plays the media content; as the mediacontent is playing, the progress marker moves around the circularprogress bar reflecting a progress of the media content being played;the progress marker has moved to a location on the circular progress barthat is different from the location of the bookmark; and selecting thebookmark comprises selecting the bookmark indicator on the circularprogress bar.
 11. The system of claim 7, wherein: the UI component isactivated on a touchscreen device; selecting the bookmark indicatorcomprises touching the touchscreen device on the bookmark indicator onthe circular progress bar; and the selecting causes the playing of themedia content from the frame identified by the bookmark indicator. 12.The system of claim 7, wherein the UI component: pauses playback of themedia content; determines that the pause occurs at the frame that hasbeen bookmarked; and provides an option to remove the bookmark.
 13. Anon-transitory computer readable storage medium encoded with computerprogram instructions which when accessed by a computer cause thecomputer to load the program instructions to a memory therein creating aspecial purpose data structure causing the computer to operate as aspecially programmed computer, executing a method of bookmarking a frameof media content, comprising: activating, in the specially programmedcomputer, a user interface (UI) component that controls playback of themedia content in a media player, wherein the UI component comprises acircular progress bar; displaying a scaled circular keyframe within thecircular progress bar, wherein the scaled circular keyframe comprises apreview of the frame of the media content located at a time within themedia content that is identified by a progress marker; accepting userinput identifying, in the specially programmed computer, the framewithin the media content; accepting user input associating, in thespecially programmed computer, the frame with a bookmark; displaying,via the specially programmed computer, a bookmark on the circularprogress bar, wherein the bookmark reflects a location in the mediacontent where the frame is located, and wherein the bookmark indicatoris different from the progress marker; accepting user input selecting,in the specially programmed computer, the bookmark; and in response tothe user input selecting the bookmark indicator, playing, in thespecially programmed computer, the media content from the frameidentified by the bookmark.
 14. The non-transitory computer readablestorage medium of claim 13, wherein the identifying the frame comprises:pausing play of the media content in the media player; and identifyingthe frame that is displayed when the media content is paused.
 15. Thenon-transitory computer readable storage medium of claim 13, wherein theassociating comprises: selecting a bookmark icon that associates thebookmark with the frame.
 16. The non-transitory computer readablestorage medium of claim 13, wherein displaying the bookmark comprises:displaying a graphic indicator coincident with the circular progressbar.
 17. The non-transitory computer readable storage medium of claim13, wherein: the media player is configured to play the media content,wherein as the media content is playing, the progress marker movesaround the circular progress bar reflecting a progress of the playing;the progress marker has moved to a location on the circular progress barthat is different from the location of the bookmark; and whereinselecting the bookmark comprises selecting the bookmark on the circularprogress bar.
 18. The non-transitory computer readable storage medium ofclaim 13, wherein: the media content user interface control is activatedon a touch screen device; and selecting the bookmark comprises touchingthe touch screen device on the bookmark.
 19. The non-transitory computerreadable storage medium of claim 13, further comprising: pausingplayback of the media content; determining that the pausing is locatedat the frame that has been bookmarked; and providing an option to removethe bookmark.
 20. The computer-implemented method of claim 1, wherein asthe progress marker is moved within a defined threshold range of thebookmark indicator, the progress marker snaps to the frame that isbookmarked.
 21. The computer-implemented method of claim 1, whereininteraction with the circular progress bar is consistent with a user'sthumb's natural rotational angle.
 22. The system of claim 7, wherein asthe progress marker is moved within a defined threshold range of thebookmark indicator, the progress marker snaps to the frame that isbookmarked.
 23. The system of claim 7, wherein interaction with thecircular progress bar is consistent with a user's thumb's naturalrotational angle.
 24. The non-transitory computer readable storagemedium of claim 13, wherein as the progress marker is moved within adefined threshold range of the bookmark indicator, the progress markersnaps to the frame that is bookmarked.
 25. The non-transitory computerreadable storage medium of claim 13, wherein interaction with thecircular progress bar is consistent with a user's thumb's naturalrotational angle.